package com.kantboot.business.bp.service;

import com.kantboot.business.bp.domain.dto.BusBpProblemSearchDTO;
import com.kantboot.business.bp.domain.entity.BusBpProblem;
import com.kantboot.business.bp.domain.entity.BusBpProblemAnswer;
import com.kantboot.business.bp.domain.entity.BusBpProblemCollection;
import com.kantboot.util.core.param.PageParam;
import com.kantboot.util.core.result.PageResult;

import java.util.List;

public interface IBusBpProblemService {

    /**
     * 根据id查询
     */
    BusBpProblem getById(Long id);

    /**
     * 发布问题
     * @param busBpProblem 实体
     * @return 实体
     */
    BusBpProblem push(BusBpProblem busBpProblem);

    /**
     * 回答问题
     */
    BusBpProblemAnswer answer(BusBpProblemAnswer busBpProblemAnswer);

    /**
     * 过去自己的问题
     */
    List<BusBpProblem> getSelfProblem();

    /**
     * 获取前台数据
     */
    List<BusBpProblem> getBodyDataFront(BusBpProblemSearchDTO dto);

    /**
     * 收藏问题
     */
    void collect(Long problemId);

    /**
     * 取消收藏问题
     */
    void cancelCollect(Long problemId);

    /**
     * 获取自己的收藏
     */
    List<BusBpProblemCollection> getSelfCollection();

    /**
     * 认可答案
     */
    void recognizedAnswer(Long answerId);

    /**
     * getBodyData
     */
    PageResult getBodyData(PageParam<BusBpProblemSearchDTO> pageParam);

}
